/*
 * Created on 2 juin 2005
 * Last release june 2008
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package perception;

import java.awt.Point;
import maze.*;

/**
 * @author deloor
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public abstract class Perception {

    private SituatedAgent _myAgent;
    protected Point _position;

    public abstract void updatePerception();
    public abstract Perception copy();
    public abstract void display();
    public abstract boolean equals(Perception s);

	/**
	 * Cette methode permet a l'interface d'afficher la memoire
	 * d'un agent. Ceci pose un probleme : Pour une PositionLearnerPerception
	 * la position est celle associee a la perception, mais pour d'autres
	 * Perception, il faudra la definir differemment
	 * @return Un point ou il faut afficher la memoire sur une representation
	 * graphique
	 */
	//abstract public Point getPosition();
    public SituatedAgent getAgent()
    {//System.out.println("Attention Appel de getAgent dans la classe Perception !!");
        return _myAgent;
    }
        
    public void setAgent(SituatedAgent a)
    {
        // System.out.println("Attention Appel de setAgent dans la classe Perception !!"); 
        _myAgent = a;
    }
    
    public Point getPosition() {
        return _position;
    }
}
